Skip to content

ci: add retry for artifact download steps#1984

Merged
tyrielv merged 1 commit into
microsoft:masterfrom
tyrielv:tyrielv/retry-artifact-downloads
May 26, 2026
Merged

ci: add retry for artifact download steps#1984
tyrielv merged 1 commit into
microsoft:masterfrom
tyrielv:tyrielv/retry-artifact-downloads

Conversation

@tyrielv
Copy link
Copy Markdown
Contributor

@tyrielv tyrielv commented May 22, 2026

Transient failures in actions/download-artifact are a frequent source of flaky CI runs — I see these several times a week, always succeeding on manual re-run.

This adds a single automatic retry for each download-artifact step using the continue-on-error + outcome == 'failure' pattern:

  • functional-tests.yaml: retry for Git installer, GVFS installer, and functional tests drop (3 download steps)
  • upgrade-tests.yaml: retry for Git installer and GVFS installer (2 download steps)

How it works: Each download step gets id + continue-on-error: true. A duplicate step follows that only runs when the first attempt failed (steps.<id>.outcome == 'failure'). No new dependencies, no third-party actions.

Example of a recent failure this would fix: https://github.com/microsoft/VFSForGit/actions/runs/26310137269/job/77463758324?pr=1981

Transient failures in actions/download-artifact are a frequent source of
flaky CI runs. Add a retry step after each download that triggers only
when the first attempt fails (continue-on-error + outcome check).

Applied to both functional-tests.yaml and upgrade-tests.yaml.

Assisted-by: Claude Opus 4.6
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>
@tyrielv tyrielv enabled auto-merge May 22, 2026 21:50
Copy link
Copy Markdown
Contributor

@derrickstolee derrickstolee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice if the task itself could have retries, but this "maybe just run it again" will help.

@tyrielv tyrielv merged commit c62d9dd into microsoft:master May 26, 2026
51 checks passed
@tyrielv
Copy link
Copy Markdown
Contributor Author

tyrielv commented May 26, 2026

It would be nice if the task itself could have retries, but this "maybe just run it again" will help.

Agreed - that feature isn't built in to github actions though, it would require referencing a third party action.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants